/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package socafeclient;

import entity.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author alberto
 */
public class TableModelReservaciones extends AbstractTableModel {

    private ArrayList datalist = new ArrayList();
    private String[] columns = {"Mesa", "Cliente", "Fecha"};
    

    @Override
    public int getRowCount() {
        return datalist.size();
    }

    @Override
    public int getColumnCount() {
        return columns.length;
    }

    @Override
    public Object getValueAt(int row, int col) {
        Reservaciones  r = (Reservaciones) datalist.get(row);
        switch (col) {
            case 0: //Mesa
                return r.getIdmesa().getIdmesa();
            case 1: //Cliente
                return r.getNombrecliente();
            case 2: //FechaCreacion
                String strDate = new SimpleDateFormat("mm/dd/yyyy").format(r.getFecha());
                return strDate;            
            
            default:
                return false;
        }

    }

    public Reservaciones getReservacionAt(int row) {
        return (Reservaciones) datalist.get(row);
    }

    public Reservaciones removeReservacionAt(int row) {
        Reservaciones reservacion = (Reservaciones) datalist.remove(row);
        fireTableDataChanged();
        return reservacion;

    }

    public void addReservacion(Reservaciones c) {
        datalist.add(c);
        fireTableDataChanged();
    }

    public void addReservacionesList(List l, boolean limpiar) {
        if (limpiar) {
            datalist.clear();
         
        }
        Iterator iterador = l.listIterator();
        while (iterador.hasNext()) {
            Reservaciones c = (Reservaciones) iterador.next();
            datalist.add(c);
        }

        fireTableDataChanged();
    }

    public TableModelReservaciones(List l) {
        Iterator iterador = l.listIterator();
        while (iterador.hasNext()) {
            Reservaciones c = (Reservaciones) iterador.next();
            datalist.add(c);
        }

    }
    

    public TableModelReservaciones(int opcion) {
        //this(l);
        columns = new String[]{"Mesa", "Mesero", "Fecha"};
         

        
    }

    public TableModelReservaciones() {
     
    }

    @Override
    public String getColumnName(int i) {
        return columns[i];
    }

    @Override
    public boolean isCellEditable(int row, int col) {
        switch (col) {
            case 0: //Mesa
                return false;
            case 1: //Cliente
                return false;
            case 2: //fecha
                return false;            
            default:
                return false;
        }
    }

    @Override
    public Class getColumnClass(int col) {
        switch (col) {
            case 0: //idmesa
                return Mesas.class;
            case 1: //NOmbre 
                return String.class;
            case 2: //FechaCreacion
                return String.class;            
            default:
                return null;
        }
    }

    

}
